menu: Guard against NULL toplevel
authorTimm Bäder <mail@baedert.org>
Tue, 26 Sep 2017 05:10:39 +0000 (07:10 +0200)
committerTimm Bäder <mail@baedert.org>
Fri, 9 Feb 2018 19:17:48 +0000 (20:17 +0100)
This can happen, as indicated by GtkMenu explicitly connecting to
::destroy of its toplevel window. Do the same thing in GtkComboBox.

gtk/gtkmenu.c

index a39aa42351ec83f98b1ad4e404475f036424eb9f..95562ab9fb6aebe757528f0163bb3c48e0e38d1f 100644 (file)
@@ -1384,11 +1384,14 @@ gtk_menu_detach (GtkMenu *menu)
   g_object_set_data (G_OBJECT (menu), I_(attach_data_key), NULL);
 
   /* Detach the toplevel window. */
-  g_signal_handlers_disconnect_by_func (toplevel,
-                                        (gpointer) menu_toplevel_attached_to,
-                                        menu);
-  if (gtk_window_get_attached_to (toplevel) == data->attach_widget)
-    gtk_window_set_attached_to (toplevel, NULL);
+  if (toplevel)
+    {
+      g_signal_handlers_disconnect_by_func (toplevel,
+                                            (gpointer) menu_toplevel_attached_to,
+                                            menu);
+      if (gtk_window_get_attached_to (toplevel) == data->attach_widget)
+        gtk_window_set_attached_to (toplevel, NULL);
+    }
 
   g_signal_handlers_disconnect_by_func (data->attach_widget,
                                         (gpointer) attach_widget_display_changed,